The World Wide Web is the Internet's multimedia information retrieval system. In the web environment, client machines communicate with web servers using the Hypertext Transfer Protocol (HTTP). The web servers provide users with access to files such as text, graphics, images, sound, video, etc., using a standard page description language known as Hypertext Markup Language (HTML). HTML provides basic document formatting and allows the developer to specify connections known as hyperlinks to other servers and files. In the Internet paradigm, a network path to a server is identified by a Uniform Resource Locator (URL) having a special syntax for defining a network connection. So called web browsers, for example, Netscape Navigator (Netscape Navigator is a registered trademark of Netscape Communications Corporation) or Microsoft Internet Explorer (Microsoft and Internet Explorer are trademarks of Microsoft Corporation), which are applications running on a client machine, enable users to access information by specification of a link via the URL and to navigate between different HTML pages.
When the user of the web browser selects a link, the client machine issues a request to a naming service to map a hostname (in the URL) to a particular network IP (Internet Protocol) address at which the server machine is located. The naming service returns an IP address that can respond to the request. Using the IP address, the web browser establishes a connection to the server machine. If the server machine is available, it returns a web page. To facilitate further navigation within the site, a web page typically includes one or more hypertext references (“HREF”) known as “anchors” or “links”.
A portal is usually a web application which aggregates content from various different sources and presents it within a portal web page, and may have sophisticated personalization features to provide customized content to users. The portal application can provide a gateway to one or more backend software applications and is often provided on a separate portal server.
The portal server typically arranges web content into a portal page containing one or more portlets. A portlet is a web component, managed by a portlet container, which processes and generates dynamic web content. This content, often called a fragment, can be aggregated by the portal with content from other portlets to form the portal page. The content generated by a portlet may vary from one user to another depending on the user configuration for the portlet.
The portal provides a navigation framework for a set of web pages arranged on the server in a hierarchy. This framework provides a user interface allowing navigation through the hierarchy of pages that are available on the server. The user interface providing this navigation is known as a theme. Each page may contain zero or more portlets, the page arrangement being predetermined and constructed using design or administration tools.
With a standard server-side portal, a client web browser is used to view the aggregated output of several portlets on a single page. Users interact with content produced by the portlets, for example by submitting forms or following links, resulting in portlet actions being received by the portal. When an HTTP request is received by the portal server, it determines if the request contains an action targeted to any of the portlets associated with the portal page. If there is an action targeted to a portlet, the portal requests the portlet container to invoke the portlet to process the action. The portlet processes the action and generates a content fragment to be included in the new portal page. Additionally, all other portlets on the requested portal page refresh and pass a content fragment to the portal. The portal packages each portlet content fragment in a portlet window adding a title and control buttons to each window. This is sometimes called ‘wrapping’ each supplied content fragment, and the additional markup used to wrap the fragment is called a ‘skin’. The skin may include control buttons which may be used, for example, to place the portlet into a specific mode like edit or configure, or to change the display state of the portlet into a maximized or minimized visual state, like you would see in a common windowing system. Then the portal aggregates the portlet windows into a complete portal page, for sending to the client. The web browser renders the code on a display screen of the client.
Navigation to a page served by the portal can be through the navigation framework provided by the theme if a user starts out with a URL to the portal home page, or via URL links to specific pages, or via URL links to an instance of a portlet; in the latter case the portal serves up the complete page containing that portlet.
Many companies have made large investments in the development of portlets to meet their business requirements. At present these are purely server-side applications, accessible only using a client web browser, and generally only while connected to the portal server via some form of network. It would be greatly beneficial for users to be able to continue to use those same portlets while not connected to the network. This could be achieved by rewriting the portlets as standalone applications for deployment on the client side. However, this would require modification of all portlets to allow them to run as standalone applications, which would be a costly and time consuming undertaking likely to discourage a move from server to client side. The present invention aims to address these problems.